package com.easylinkin.linkappapi.asset.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.easylinkin.linkappapi.asset.entity.AdeviceVo;
import com.easylinkin.linkappapi.asset.entity.Asset;
import com.easylinkin.linkappapi.asset.entity.UserVo;
import com.easylinkin.linkappapi.device.entity.Device;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 设备资产表，关联两张表 关联1  资产表-资产设备表 关联2  资产表-资产用户表 Mapper 接口
 * </p>
 *
 * @author XuGuoQing
 * @since 2020-04-15
 */
public interface AssetMapper extends BaseMapper<Asset> {

    IPage<Asset> getAsset(IPage<Asset> page, @Param("asset") Asset asset);
    
    List<Asset> getAssets(@Param("asset") Asset asset);
    
    Asset getAsset(@Param("asset") Asset asset);

    IPage<Device> getDvicePageByAssetId(IPage<Device> page, @Param("adeviceVo") AdeviceVo adeviceVo);

    List<Device> getDvicePageByAssetId(@Param("adeviceVo") AdeviceVo adeviceVo);

    /**
     * 查询没有被资产关联的设备列表
     */
    IPage<Device> getUnCoonectDviceByAreaId(IPage<Device> page, @Param("adeviceVo") AdeviceVo adeviceVo);

    List<UserVo> getAllManagers(@Param("tenantId") String tenantId);

    /**
     * 根据资产查询相关的联系人
     */
    List<UserVo> getManagersByAssertId(@Param("assetId") String assetId);


    Map<String, Integer> queryDayAndMonthCreates();

}
